草庐IT

C++ sizeof 包装类

全部标签

c# - 如何编写用于将 Qt 信号映射到 C# 事件的包装类(通过 C++/CLI)

通过C++/CLI包装器调用C++/Qt类就像在公园散步一样。但我无法将C++/Qt信号映射到C#事件。我尝试结合一些可用的操作方法/答案,但没有得到任何有效结果:HowtomapQtSignaltoEventinManagedC++(C++/CLI)Callingmanagedcodefromunmanagedcodeandvice-versa和其他一些不那么直接相关的...这里的问题是,这些操作方法/答案已经很老了。我目前正在使用Qt5.5(即将推出5.6)和.NET4.6。我试图使一切适应当前的技术水平,但可能失败了。可能是因为树太多,我看不到森林,所以我想求一个工作的例子,用当

c++ - 包装一行预处理器 C++

如何包装一行预处理器指令并忽略多余的空间?测试代码:#errorLine0\Line1结果:short_test.cpp(1):error:#errordirective:Line0Line1#errorLine0\^虽然我想在测试代码中保留缩进模式,但我不想在结果中显示第0行和第1行之间的间距。这可能吗?我想要的结果:short_test.cpp(1):error:#errordirective:Line0Line1nospacebetweenLine0andLine1我想要的测试代码#errorLine0\(extrastuff?)Line1 最佳答案

c++ - 是否有任何理由不将 assert() 包装在解析为 gcc 中的 __builtin_unreachable() 的宏中?

上下文:在这个answer,我了解到gcc的__builtin_unreachable()可能会对性能产生一些令人惊讶的影响,因为看起来如下:if(condition)__builtin_unreachable();被完全剥离,用作优化提示,只要condition可以保证没有任何副作用。所以我对此的直接react是我应该创建以下宏,并且绝对在我通常使用assert()的所有地方使用它,因为在assert中会产生副作用()首先会是一个主要错误://TODO:addhandlingofothercompilersasappropriate.#ifdefined(__GNUC__)&&def

c++ - 如何编写用于从 C 访问 C++ 类成员的包装器(具有继承和构造函数)

在大多数问题中,我看到了一个没有构造函数、继承的简单类的包装器,只是调用了一个用于创建和销毁的void*以及一个foo函数。对于像下面这样的结构,应该如何创建一个包装器来从C代码访问类成员。myHeader.hforc++-------------------classchildA:publicparentA{private:voidlogger()override}classchildB:publicparentB{private:/*somemembers*/protected:/*somemembers*/public:explicitchildB(childA*a);}clas

c++ - 包装递归可变参数模板类会改变行为。为什么?

希望这会引起社区中的一些人的兴趣。希望它不会太明显,因为我不确定发生了什么。我创建了具有递归定义的可变参数模板类,主要是作为一个有趣的self挑战。有点像一个元组,这个类创建unordered_maps的unordered_maps,到任意深度并且在每一层具有任意键类型。例如,您可以创建nested_map然后用map["fred"][3.4][42]=35;设置它这是代码-不太疯狂。templatestructnested_map_base:std::unordered_map{T&operator[](constK&key){//justtoverifywegettothebott

c++ - 在 C++ 中实现和包装函数组合以进行惰性求值

假设我有一个applicative的简单实现,这是我为理智选择的名称,而不是我对其他语言的Applicative类型类一无所知。下面是实现:#include#includetemplatestructapplicative{templateautothen(Fnf)const{returnapplicative{f(data_)};}templateautoand_last(Fnf)const{returnf(data_);}Tdata_;};intmain(){applicative{"helloworld"}.then([](std::stringconst&s){returns.

c++ - 在模板参数列表中使用 sizeof... 时为 "too few template arguments"(MSVC 2017)

以下最小示例不基于当前的MSVC2017(19.16)。它确实基于MSVC2015和2017(19.14)的旧版本、GCC、Clang和ICC。所以我怀疑这是一个编译器错误。有效吗?如果不是,为什么?#include#includetemplateautofoo(std::integer_sequence){returnstd::array{Is...};}std::arraybar(){returnfoo(std::make_integer_sequence());}有效的变体:投入unsigned(sizeof...(Is))在参数列表中作为默认参数替换unsigned(...)与

c++ - 使用可变参数模板函数围绕类实现基于 pImpl 的包装器

总结我正在编写一个库和一个客户端应用程序。在库中,我尝试围绕另一个静态链接的第三方库(特别是spdlog)编写包装器,并尝试使用pImpl惯用语将其完全隐藏在客户端应用程序中。问题是第三方库使用可变模板函数,所以我也需要在我的库中。背景我对包装器的第一次尝试非常简单直接,但后来我在客户端应用程序中收到“没有这样的文件或目录”错误,因为第三方header包含在我的库header中。我接下来尝试创建一个pImpl类并让它进行编译,但在客户端中我再次遇到“undefinedreference”链接器错误。将实现的源代码拉到我的包装器的header中让我回到最初的“没有这样的文件”问题。对此进

c++ - 适用于 C++ 的良好 Windows 注册表包装器

有谁知道不需要MFC(即可以在控制台应用程序中运行)的适用于VC++的免费/开源Windows注册表包装器? 最佳答案 ATL带有一个基本的CRegKey可能适合您的需求并且易于从控制台应用程序使用的包装器。 关于c++-适用于C++的良好Windows注册表包装器,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1880275/

c++ - 封装类的用户输入数据

对于一项作业,我编写了一个简单的C++程序,它使用一个父类(superclass)(Student)和两个子类(CourseStudent和ResearchStudent)来存储学生列表和打印出他们的详细信息,为两种不同类型的学生显示不同的详细信息(使用Student中的display()方法的重写)。我的问题是关于程序如何收集用户输入的信息,例如学生姓名、身份证号码、单元和费用信息(对于类(class)学生)和研究信息(对于研究生):我的实现提示用户输入并收集类本身处理的输入。这背后的原因是每个类都知道它需要什么样的输入,所以让它知道如何请求它对我来说很有意义(给定一个用于请求的os